// On recupere les informations concernant l adherent
function charger_valeurs()
{
	// On recupere le nom et le prenom des inputs
	var nom = document.getElementById('nom_personne').value;
	var prenom = document.getElementById('prenom_personne').value;
	
	// Creation des parametres passes a la fonction
	var params = "nom="+nom+"&prenom="+prenom;
	var xmlHttp = createXmlHttpRequestObject();
	xmlHttp.open("POST", "charger_informations_adherent.php", true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange = function(){traiter_reponse(xmlHttp);};
	xmlHttp.send(params);
}

// Traitement des donnees recuperees dans la requete precedente
function traiter_reponse(myReq) 
{
	var ol;
	var text;
	var responseJSON;
	
	if (myReq.readyState == 4) // Si tout c est bien passe
	{	
		if(myReq.status == 200) 
		{
			// On remplit la liste des adherents
			responseJSON = JSON.parse(myReq.responseText);
			for(i = 0; i < responseJSON.listeCheckBox.length; i++) 
			{     
				// On a recupere dans la base le nom donne au champ qu on souhaite garder anonyme ou pas
				// On verifier que ces noms correspondent a ces regex
				var regA = new RegExp("^adresse.*$","i");
				var regB = new RegExp("^tel_fixe.*$","i");
				var regC = new RegExp("^tel_port.*$","i");
				var regD = new RegExp("^mail.*$","i");
				
				// On met a jour chaque checkbox
				if(responseJSON.listeCheckBox[i].nom.match(regA))
				{
					document.getElementById('vis_adresse').checked = true;
				}
				if(responseJSON.listeCheckBox[i].nom.match(regB))
				{
					document.getElementById('vis_tel_fixe').checked = true;
				}
				if(responseJSON.listeCheckBox[i].nom.match(regC))
				{
					document.getElementById('vis_tel_port').checked = true;
				}
				if(responseJSON.listeCheckBox[i].nom.match(regD))
				{
					document.getElementById('vis_email').checked = true;
				}
			} 
			
			// On affiche les informations de l adherent
			document.getElementById('adresse').value = responseJSON.infoAdherent[0].adresse; 
			document.getElementById('tel_fixe').value = responseJSON.infoAdherent[0].tel_fixe;
			document.getElementById('tel_port').value = responseJSON.infoAdherent[0].tel_port;
			document.getElementById('email').value = responseJSON.infoAdherent[0].email;			
		}
		
	} 
}

// Lorsque que l utilisateur veut modifier ses informations
function modifierAdherent()
{
	// On recupere les valeurs des mots de passe si celui si souhaite les modifier
	var valeurMDP = document.getElementById('mdp').value;
	var valeurNewMDP = document.getElementById('new_mdp').value;
	var valeurConfirmerMDP = document.getElementById('confirmer_mdp').value;
	
	//On verifie si il y a deja un message d'erreur
	var nb = 0;
	for(j = 0; j < document.getElementById('mess_erreur').childNodes.length ; j++)
	{
		if(document.getElementById('mess_erreur').childNodes.item(j).nodeType == 3 )
	    {
			nb = nb + 1;
	    }
	}
	//On supprime le noeud texte contenant le message erreur si il y en deja un
	if(nb != 0)
	{
		document.getElementById('mess_erreur').removeChild(document.getElementById('mess_erreur').firstChild);
	}  
	////////////////////////////////////////////////
	// On verifie la saisie des champs (vide ou non)
	////////////////////////////////////////////////
	if(valeurMDP != "" && (valeurNewMDP == "" || valeurConfirmerMDP == ""))
	{
		var text = document.createTextNode("Veuillez saisir votre nouveau mot de passe");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e); 
	}
	else if (valeurMDP == "" && (valeurNewMDP != "" || valeurConfirmerMDP != ""))
	{
		var text = document.createTextNode("Veuillez saisir votre ancien mot de passe");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e); 
	}
	else if (valeurMDP != "" && valeurNewMDP != valeurConfirmerMDP)
	{
		var text = document.createTextNode("Le nouveau mot de passe saisi est diff�rent");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e); 
	}
	else if (valeurMDP != "" && valeurNewMDP == valeurConfirmerMDP)
	{
		// On recupere les valeurs a mettre a jour
		var nom = document.getElementById('nom_personne').value;
		var prenom = document.getElementById('prenom_personne').value;
		var adresse = document.getElementById('adresse').value; 
		var telf = document.getElementById('tel_fixe').value;
		var telp = document.getElementById('tel_port').value;
		var email = document.getElementById('email').value;
		
		// On recupere les checkbox a mettre a jour (non traite cote PHP)
		var chkAdr = document.getElementById('vis_adresse').checked;
		var chktf = document.getElementById('vis_tel_fixe').checked;
		var chktp = document.getElementById('vis_tel_port').checked;
		var chkemail = document.getElementById('vis_email').checked;
		
		// Modification du mot de passe et mise a jour des valeurs
		var params = "nom="+nom+"&prenom="+prenom+"&mdp="+valeurMDP+"&newmdp="+valeurNewMDP+"&adresse="+adresse+"&tel_fixe="+telf+"&tel_port="+telp+"&email="+email+"&chkAdr="+chkAdr+"&chktf="+chktf+"&chktp="+chktp+"&chkemail="+chkemail;
		var xmlHttp = createXmlHttpRequestObject();
		xmlHttp.open("POST", "modifier_mdp_adherent.php", true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
		xmlHttp.onreadystatechange = function()
		{
			if (xmlHttp.readyState == 4) 
			{		
				if(xmlHttp.status == 200) 
				{		
					history.back()	// On retourne a la derniere page				
				}	
			}
		};						
	}
	else if (valeurMDP == "" && valeurNewMDP == "" && valeurConfirmerMDP == "")
	{
		// Si les mots de passe non pas ete modifie
		var nom = document.getElementById('nom_personne').value;
		var prenom = document.getElementById('prenom_personne').value;
		var adresse = document.getElementById('adresse').value; 
		var telf = document.getElementById('tel_fixe').value;
		var telp = document.getElementById('tel_port').value;
		var email = document.getElementById('email').value;
		var xmlHttp = createXmlHttpRequestObject();	
		var params = "nom="+nom+"&prenom="+prenom+"&adresse="+adresse+"&tel_fixe="+telf+"&tel_port="+telp+"&email="+email;
		xmlHttp.open("POST", "maj_compte_adherent.php", true); // On met a jour les informations de l adherent
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
		xmlHttp.onreadystatechange = function() 
		{
			if (xmlHttp.readyState == 4) 
			{		
				if(xmlHttp.status == 200) 
				{
					history.back(); // On retourne a la page precedente
				}
			}
		}	
	}	
}

// Ajout des listener aux elements de la page
function ajouterEvent()
{
	addListener(document.getElementById('annuler'),'click',function(){history.back()});
	addListener(document.getElementById('bt_modifier'),'click',modifierAdherent);
}

// En cas d erreur
function stopEvent(e) {
	if(e.stopPropagation){
		e.stopPropagation();
		e.preventDefault();
	}
 
	if(window.event){
		window.event.cancelBubble = true;
		window.event.returnValue  = false;
		return;
	}
}

function checkForm(event)
{
	faulty=null;
	if(!faulty)
	{
		return stopEvent(event);
	}
 }

// Ajout du listener a la form
function addFormCheck(nomForm){
var form = document.getElementById('form1');
addListener(form,'submit',checkForm);
}

// Ajout des listeners a la page
addListener(window,'load',addFormCheck);
addListener(window,'load',ajouterEvent);
addListener(window,'load',charger_valeurs);